package com.wusiwei.entity;

import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 发票实体类
 * 对应数据库中的invoices表
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class Invoice extends BaseEntity {
    /**
     * 发票ID
     */
    private Long id;

    /**
     * 发票编号
     */
    private String invoiceNumber;

    /**
     * 关联订单ID
     */
    private Long orderId;

    /**
     * 关联收货单ID
     */
    private Long receiptId;

    /**
     * 供应商名称
     */
    private String supplierName;

    /**
     * 发票类别
     */
    private String category;

    /**
     * 开票日期
     */
    private LocalDate issueDate;

    /**
     * 购买方信息
     */
    private String purchaserInfo;

    /**
     * 销售方信息
     */
    private String sellerInfo;

    /**
     * 备注信息
     */
    private String remarks;

    /**
     * 开票人
     */
    private String issuer;

    /**
     * 发票文件路径
     */
    private String filePath;

    /**
     * 总金额
     */
    private BigDecimal totalAmount;

    /**
     * 总税额
     */
    private BigDecimal totalTax;

    /**
     * 价税合计
     */
    private BigDecimal totalAmountWithTax;

    /**
     * 是否删除（0:未删除,1:已删除）
     */
    private Byte deleted;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;

    /**
     * 发票详情列表（非数据库字段）
     */
    private List<InvoiceDetail> details;
} 